package com.css.fxfzcpxx.modules.typeManage.repository;

import com.css.fxfzcpxx.modules.courseManage.entity.CourseManage;
import com.css.fxfzcpxx.modules.informationDelivery.entity.InfDelivery;
import com.css.fxfzcpxx.modules.questionData.entity.QuestionData;
import com.css.fxfzcpxx.modules.typeManage.entity.TypeManage;
import com.css.fxfzcpxx.modules.typeManage.param.TypeManageParam;

import java.util.List;
import java.util.Map;

public interface TypeManageRepository {
    List<TypeManage> getType(String plate);

    void save(TypeManage typeManage);

    void delete(String id);

    void update(TypeManage typeManage);

    TypeManage queryIdByName(String name);

    List<InfDelivery> queryDataDelivery(String id);

    List<CourseManage> queryDataCourse(String id);

    List<QuestionData> queryDataQuestion(String id);

    /**
     * 一次最多查500条
     * @param param 查询条件
     * @param tableNameSql sql语句前半段
     * @param name 标题字段名
     * @param typeId 类别字段名
     * @param asList 多个类别id
     * @return
     */
    Map<String, Object> getPage(TypeManageParam param, String tableNameSql,String name ,String typeId,List<String> asList);

    void transferByIds(String tableName,String type, String typeId, List<String> asList);
    void transferByIdsALm(String lm,String type, String typeId, List<String> asList);

    void transferByTypeId(String tableName, String type, String newTypeId, List<String> asList);
    void transferByTypeIdALm(String lm, String type, String newTypeId, List<String> asList);

    TypeManage queryById(String id);

    TypeManage queryByPlateAndName(String typePlate, String typeName);
}
